if (item.focusCallback) {
item.focusCallback(timestamp);
} else {
- if (global.stage_input_mode == Shell.StageInputMode.NONREACTIVE ||
- global.stage_input_mode == Shell.StageInputMode.NORMAL)
+ if (global.stage_input_mode == Shell.StageInputMode.NORMAL)
global.set_stage_input_mode(Shell.StageInputMode.FOCUSED);
item.root.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
this._grabbedFromKeynav = hadFocus;
this._preGrabInputMode = global.stage_input_mode;
- if (this._preGrabInputMode == Shell.StageInputMode.NONREACTIVE ||
- this._preGrabInputMode == Shell.StageInputMode.NORMAL) {
+ if (this._preGrabInputMode == Shell.StageInputMode.NORMAL)
global.set_stage_input_mode(Shell.StageInputMode.FOCUSED);
- }
this._keyFocusNotifyId = global.stage.connect('notify::key-focus', Lang.bind(this, this._onKeyFocusChanged));
this._focusWindowChangedId = metaDisplay.connect('notify::focus-window', Lang.bind(this, this._focusWindowChanged));
* @mode: the stage input mode
*
* Sets the input mode of the stage; when @mode is
- * %SHELL_STAGE_INPUT_MODE_NONREACTIVE, then the stage does not absorb
- * any clicks, but just passes them through to underlying windows.
- * When it is %SHELL_STAGE_INPUT_MODE_NORMAL, then the stage accepts
- * clicks in the region defined by
- * shell_global_set_stage_input_region() but passes through clicks
- * outside that region. When it is %SHELL_STAGE_INPUT_MODE_FULLSCREEN,
- * the stage absorbs all input.
+ * %SHELL_STAGE_INPUT_MODE_NORMAL, then the stage accepts clicks in
+ * the region defined by shell_global_set_stage_input_region() but
+ * passes through clicks outside that region. When it is
+ * %SHELL_STAGE_INPUT_MODE_FULLSCREEN, the stage absorbs all input.
*
* When the input mode is %SHELL_STAGE_INPUT_MODE_FOCUSED, the pointer
* is handled as with %SHELL_STAGE_INPUT_MODE_NORMAL, but additionally
* will revert to %SHELL_STAGE_INPUT_MODE_NORMAL.
*
* Note that whenever a mutter-internal Gtk widget has a pointer grab,
- * the shell behaves as though it was in
- * %SHELL_STAGE_INPUT_MODE_NONREACTIVE, to ensure that the widget gets
- * any clicks it is expecting.
+ * the shell goes unresponsive and passes things to the underlying GTK+
+ * widget to ensure that the widget gets any clicks it is expecting.
*/
void
shell_global_set_stage_input_mode (ShellGlobal *global,
screen = meta_plugin_get_screen (global->plugin);
- if (mode == SHELL_STAGE_INPUT_MODE_NONREACTIVE || global->gtk_grab_active)
+ if (global->gtk_grab_active)
meta_empty_stage_input_region (screen);
else if (mode == SHELL_STAGE_INPUT_MODE_FULLSCREEN || !global->input_region)
meta_set_stage_input_region (screen, None);